1. Technical Field
The present invention relates generally to an improved data processing system, and in particular to an improved method and apparatus for a graphics display system in a data processing system. Still more particularly, the present invention relates to an improved method and apparatus for displaying characters on a video display in a data processing system.
2. Description of the Related Art
Today's operating systems, such as OS/2, Windows, and AIX, use a graphic user interface (GUI) to provide an improved interface between a user and a computer. "OS/2" and "AIX" are trademarks of International Business Machines Corporation. "Windows" is a trademark of Microsoft Corporation. A GUI allows an application to utilize both text and graphics on a single display screen. Characters may be presented on a display screen in different fonts. The term "character", as utilized in this specification means a member of a set of elements that is used for the representation, organization, or control data. The term "font" means a family of characters having a given size and style; for example, 12-point Helvetica is a font.
In addition, a GUI may allow multiple applications to share the same screen by assigning each application a rectangular potion of the screen, called a window. Areas outside of the window are usually not available to the application. A user may resize and reposition each application window as desired. The GUI also allows an application, such as a word processor to operate in a WYSIWYG (What-You-See-Is-What-You-Get) mode. Even though the GUI environment operates the display in a graphics mode, text support is still an important part of the GUI. When a display adapter operates in a graphics mode, each picture element (pal) of the character must be drawn by the GUI. Such a situation presents a serious drain on performance because of the software overhead associated with drawing all of the pels instead of just writing a single character code to the display adapter. In addition to drawing the character, a GUI supports logical operations between the source data (text character or image bitmap) and the destination (usually the screen). These logical operations are also called "rasterops" and increase the overhead required for drawing text characters. Many different configurations of hardware and software may be employed in a data processing system.
Currently, graphics adapters render raster fonts to the display screen by performing a character at a time block transfer from a font cached in off screen memory through a color expansion to the screen. Fonts are currently handled in a two-pass operation, where the first pass transfer the character to the screen and the second pass transfers the inter-character spacing to the screen. Such a system is inefficient because characters stored in off-screen memory must alternate accesses of the frame buffer, which reduces the effective bandwidth available for rendering the fonts. Second, the block transfer of the character interspace is a separate operation having overhead to set up. The transfer of the character interspace results in low performance because a graphics adapter breaks out of memory page mode often because the interspace area is usually narrow and tall in shape.
Therefore, it would be advantageous to have a method and apparatus for efficiently displaying characters on a display.